home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-08-17 | 9.1 KB | 232 lines | [TEXT/MPS ] |
- /*
- File: Sound.r
-
- Contains: Sound Manager Interfaces.
-
- Version: Technology: Sound Manager 3.3
- Release: Universal Interfaces 3.2
-
- Copyright: © 1986-1998 by Apple Computer, Inc., all rights reserved
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://developer.apple.com/bugreporter/
-
- */
-
- #ifndef __SOUND_R__
- #define __SOUND_R__
-
- #ifndef __CONDITIONALMACROS_R__
- #include "ConditionalMacros.r"
- #endif
-
- #define kInvalidSource 0xFFFFFFFF /* this source may be returned from GetInfo if no other source is the monitored source */
- #define kNoSource 'none' /* no source selection */
- #define kCDSource 'cd ' /* internal CD player input */
- #define kExtMicSource 'emic' /* external mic input */
- #define kSoundInSource 'sinj' /* sound input jack */
- #define kRCAInSource 'irca' /* RCA jack input */
- #define kTVFMTunerSource 'tvfm'
- #define kDAVInSource 'idav' /* DAV analog input */
- #define kIntMicSource 'imic' /* internal mic input */
- #define kMediaBaySource 'mbay' /* media bay input */
- #define kModemSource 'modm' /* modem input (internal modem on desktops, PCI input on PowerBooks) */
- #define kPCCardSource 'pcm ' /* PC Card pwm input */
- #define kZoomVideoSource 'zvpc' /* zoom video input */
- #define kDVDSource 'dvda' /* DVD audio input */
-
- #define kNoSoundComponentType '****'
- #define kSoundComponentType 'sift' /* component type */
- #define kSoundComponentPPCType 'nift' /* component type for PowerPC code */
- #define kRate8SubType 'ratb' /* 8-bit rate converter */
- #define kRate16SubType 'ratw' /* 16-bit rate converter */
- #define kConverterSubType 'conv' /* sample format converter */
- #define kSndSourceSubType 'sour' /* generic source component */
- #define kMixerType 'mixr'
- #define kMixer8SubType 'mixb' /* 8-bit mixer */
- #define kMixer16SubType 'mixw' /* 16-bit mixer */
- #define kSoundInputDeviceType 'sinp' /* sound input component */
- #define kWaveInSubType 'wavi' /* Windows Wave */
- #define kSoundOutputDeviceType 'sdev' /* sound output component */
- #define kClassicSubType 'clas' /* classic hardware, i.e. Mac Plus */
- #define kASCSubType 'asc ' /* Apple Sound Chip device */
- #define kDSPSubType 'dsp ' /* DSP device */
- #define kAwacsSubType 'awac' /* Another of Will's Audio Chips device */
- #define kGCAwacsSubType 'awgc' /* Awacs audio with Grand Central DMA */
- #define kSingerSubType 'sing' /* Singer (via Whitney) based sound */
- #define kSinger2SubType 'sng2' /* Singer 2 (via Whitney) for Acme */
- #define kWhitSubType 'whit' /* Whit sound component for PrimeTime 3 */
- #define kSoundBlasterSubType 'sbls' /* Sound Blaster for CHRP */
- #define kWaveOutSubType 'wavo' /* Windows Wave */
- #define kDirectSoundSubType 'dsnd' /* Direct Sound */
- #define kUNIXsdevSubType 'un1x' /* UNIX base sdev */
- #define kSoundCompressor 'scom'
- #define kSoundDecompressor 'sdec'
- #define kAudioComponentType 'adio' /* Audio components and sub-types */
- #define kAwacsPhoneSubType 'hphn'
- #define kAudioVisionSpeakerSubType 'telc'
- #define kAudioVisionHeadphoneSubType 'telh'
- #define kPhilipsFaderSubType 'tvav'
- #define kSGSToneSubType 'sgs0'
- #define kSoundEffectsType 'snfx' /* sound effects type */
- #define kSSpLocalizationSubType 'snd3'
-
- #define kSoundNotCompressed 'NONE' /* sound is not compressed */
- #define k8BitOffsetBinaryFormat 'raw ' /* 8-bit offset binary */
- #define k16BitBigEndianFormat 'twos' /* 16-bit big endian */
- #define k16BitLittleEndianFormat 'sowt' /* 16-bit little endian */
- #define kFloat32Format 'fl32' /* 32-bit floating point */
- #define kFloat64Format 'fl64' /* 64-bit floating point */
- #define k24BitFormat 'in24' /* 24-bit integer */
- #define k32BitFormat 'in32' /* 32-bit integer */
- #define kMACE3Compression 'MAC3' /* MACE 3:1 */
- #define kMACE6Compression 'MAC6' /* MACE 6:1 */
- #define kCDXA4Compression 'cdx4' /* CD/XA 4:1 */
- #define kCDXA2Compression 'cdx2' /* CD/XA 2:1 */
- #define kIMACompression 'ima4' /* IMA 4:1 */
- #define kULawCompression 'ulaw' /* µLaw 2:1 */
- #define kALawCompression 'alaw' /* aLaw 2:1 */
- #define kMicrosoftADPCMFormat 0x6D730002 /* Microsoft ADPCM - ACM code 2 */
- #define kDVIIntelIMAFormat 0x6D730011 /* DVI/Intel IMA ADPCM - ACM code 17 */
- #define kDVAudioFormat 'dvca' /* DV Audio */
- #define kQDesignCompression 'QDMC' /* QDesign music */
- #define kQUALCOMMCompression 'Qclp' /* QUALCOMM PureVoice */
- #define kOffsetBinary 'raw ' /* for compatibility */
- #define kTwosComplement 'twos' /* for compatibility */
- #define kLittleEndianFormat 'sowt' /* for compatibility */
-
- #define k8BitRawIn 0x01 /* data description */
- #define k8BitTwosIn 0x02
- #define k16BitIn 0x04
- #define kStereoIn 0x08
- #define k8BitRawOut 0x0100
- #define k8BitTwosOut 0x0200
- #define k16BitOut 0x0400
- #define kStereoOut 0x0800
- #define kReverse 0x00010000 /* function description */
- #define kRateConvert 0x00020000
- #define kCreateSoundSource 0x00040000
- #define kHighQuality 0x00400000 /* performance description */
- #define kNonRealTime 0x00800000
-
-
- /*----------------------------snd • Sound----------------------------------------------*/
- type 'snd ' {
- switch {
- case FormatOne:
- key unsigned integer = $0001;
- unsigned integer = $$CountOf(Synthesizers);
- wide array Synthesizers {
- /* Resource ID of synthesizer/modifer */
- integer squareWaveSynth = $0001,
- waveTableSynth = $0003,
- sampledSynth = $0005;
- longint; /* init parameter */
- };
-
- case FormatTwo:
- key unsigned integer = $0002;
- integer free = 0, keepInMemory = 256+1; /* Space for refe count */
- };
- unsigned integer = $$CountOf(SoundCmnds);
- wide array SoundCmnds {
- boolean noData, hasData;
- switch {
- case nullCmd:
- key bitstring[15] = 0;
- fill word; /* Param 1 = nil */
- fill long; /* Param 2 = nil */
- case quietCmd:
- key bitstring[15] = 3;
- fill word; /* Param 1 = nil */
- fill long; /* Param 2 = nil */
- case flushCmd:
- key bitstring[15] = 4;
- fill word; /* Param 1 = nil */
- fill long; /* Param 2 = nil */
- case waitCmd:
- key bitstring[15] = 10;
- integer oneSecond = 2000; /* Duration */
- fill long; /* Param 2 = nil */
- case pauseCmd:
- key bitstring[15] = 11;
- fill word; /* Param 1 = nil */
- fill long; /* Param 2 = nil */
- case resumeCmd:
- key bitstring[15] = 12;
- fill word; /* Param 1 = nil */
- fill long; /* Param 2 = nil */
- case callBackCmd:
- key bitstring[15] = 13;
- integer; /* User-defined */
- longint; /* User-defined */
- case syncCmd:
- key bitstring[15] = 14;
- integer; /* Count */
- longint; /* Identifier */
- case emptyCmd:
- key bitstring[15] = 15;
- fill word; /* Param 1 = nil */
- fill long; /* Param 2 = nil */
- case freqDurationCmd:
- key bitstring[15] = 40;
- integer oneSecond = 2000; /* Duration */
- longint; /* frequency */
- case restCmd:
- key bitstring[15] = 41;
- integer oneSecond = 2000; /* Duration */
- fill long; /* Param 2 = nil */
- case freqCmd:
- key bitstring[15] = 42;
- fill word; /* Param 1 = nil */
- longint; /* Frequency */
- case ampCmd:
- key bitstring[15] = 43;
- integer; /* Amplitude */
- fill long; /* Param 2 */
- case timbreCmd:
- key bitstring[15] = 44;
- integer sineWave, squareWave = 255; /* Timbre */
- fill long; /* Param 2 */
- case waveTableCmd:
- key bitstring[15] = 60;
- unsigned integer; /* Length */
- longint; /* Pointer to table */
- case phaseCmd:
- key bitstring[15] = 61;
- integer; /* Shift */
- longint; /* chanPtr */
- case soundCmd:
- key bitstring[15] = 80;
- fill word; /* Param 1 = nil */
- longint; /* Pointer to sound */
- case bufferCmd:
- key bitstring[15] = 81;
- fill word; /* Param 1 = nil */
- longint; /* Pointer to buffer */
- case rateCmd:
- key bitstring[15] = 82;
- fill word; /* Param 1 = nil */
- longint; /* Rate */
- };
- };
- array DataTables {
- DataTable:
- fill long; /* Pointer to data */
- SampleCnt:
- unsigned longint; /* # of sound samples */
- unsigned hex longint
- Rate22K = $56EE8BA3; /* Sampling rate */
- unsigned longint; /* Start of loop */
- unsigned longint; /* End of loop */
- hex byte; /* encode (header type) */
- hex byte; /* baseFrequency */
- hex string [$$Long(SampleCnt[$$ArrayIndex(DataTables)])];
- };
- };
-
- #endif /* __SOUND_R__ */
-
-